השאלה האמיתית היא איזה קפה? כי יש קפה ויש קפה...
איפה ה while?
פורסם במקור בפורום CODE613 ב23/03/2017 17:57 (+02:00)
השאלה האמיתית היא איזה קפה? כי יש קפה ויש קפה...
איפה ה while?
פורסם במקור בפורום CODE613 ב23/03/2017 17:57 (+02:00)
אולי כל מדעני הנתונים והארכיטקטים הם אסייתיים והלבנים הם רק איכרים צמיתים של HTML CSS ודומיו?
דווקא פילוח כזה יש אבל אתה בעיקרון צודק, בכ"א כעת הדאטה לא משוחרר.
http://stackoverflow.com/insights/survey/2017/?utm_source=so-owned&utm_medium=hero&utm_campaign=dev-survey-2017#developer-profile-developer-role-and-ethnicity
פורסם במקור בפורום CODE613 ב23/03/2017 02:41 (+02:00)
השיעור הגבוה של מתכנתי ווב הוא תוצאה של wishful thinking והאפשרות לבחור יותר מתחום אחד בסקר, כל אחד רוצה לראות את עצמו וובי, כנל לגבי node.js.
דבר אחר המם אותי, השיעור הבלתי נתפס של לבנים, מה שמעורר תחושה שהסקר הגיע די לברנז'ה.
פורסם במקור בפורום CODE613 ב22/03/2017 19:57 (+02:00)
אולי יש לך גירסה אחרת
אדרבה, תפעיל fiddler, תחזור על הפעולה ותביא פה את הלוג זה יעזור לכולם
פורסם במקור בפורום CODE613 ב20/04/2015 11:07 (+03:00)
אז זהו, יצאתי מהחשבון בדפדפן, לחצתי לחצן ימני על החשבון בג'ימייל נוטיפייר > פתח, וראה זה פלא... הוא נכנס ישר בלי אימות.
יש סתירה מובנית בדבריך מכיוון שכשיוצאים מכל חשבונות הגימייל האייקון של הגימייל נוטיפייר נהיה כחול ואין את רשימת החשבונות
אז איך לחצת על שם החשבון ?
פורסם במקור בפורום CODE613 ב19/04/2015 22:58 (+03:00)
@דוד ל.ט.
נסה אותו: התנתק מחשבונך בדפדפן, וכשתקבל הודעה חדשה עם חיווי הקלק לפתיחה בדפדפן. נפתח ההודעה בלי שום אימות?
כמובן שזה דורש Login מחדש . . .
אולי הכוונה על זה שהוא מציג את ההודעות בחלונית הקטנה אבל שם זה פשוט מציג את ה HTML של ההודעה ולא מתוך ה UI של המערכת
פורסם במקור בפורום CODE613 ב19/04/2015 16:08 (+03:00)
השיטה אותה תיארתי כבר לא פועלת היום
כך שנכון לעכשיו לא ידוע לי על דרך בה אפשר לגשר בין ה API ל UI של ג'ימייל
פורסם במקור בפורום CODE613 ב19/04/2015 11:43 (+03:00)
@דוד ל.ט.
אפשר, חתיכת קוד ועבודה...
מצטרף להנ"ל אבל אין דרך אחרת . . .
מורידים מה nuget את ה Google API ויש איזה קוד שאתה מריץ וזה בפעם הראשונה פותח למשתמש דפדפן שם הוא עושה לוגין ואתה מקבל חזרה איזה קוד שאתה משתמש איתו.
מכאן והלאה, כל לוגין שאתה רוצה לבצע אתה שולח את הקוד ומקבל טוקן שמאפשר לך להתחבר בלי השם משתמש והסיסמה של היוזר
ואז אתה משתמש ב URL משהו כזה:
https://www.google.com/accounts/TokenAuth?auth=[TOKEN]&service=mail&continue=https://mail.google.com/mail
לגבי מה שכתב MacroShadow לעניות דעתי אין מצב שאפשר לשים פרמטר של מידע כה רגיש ב URL - זה לא יהיה מוצפן אפילו ב HTTPS, לעומת זאת הטוקן שלעיל פוקע מיד אחרי השימוש
כתבתי כזה פעם שלא עלה בסוף לפרודקשן - אם תחליט שאתה הולך על זה אני יחפור למצוא את זה
פורסם במקור בפורום CODE613 ב13/04/2015 18:31 (+03:00)
כמו שבטח הבנת אי אפשר לכתוב ידנית בקוד האוטומטי כי זה יידרס בפעם הבאה שהקוד יתעדכן,
אני לא מכיר EF אבל בחשיבה פשוטה של OOP תירש את הקלאס הזה לקלאס שלך ושם תעשה בקונסטרקטור מה בא לך . . . (אא"כ הוא sealed)
אם אנחנו מדברים ספציפית על EF, ר' גוגל מצא לי משהו מעניין: יש את הענין של Partial Class, למי שלא מכיר בקצרה זה אומר שאתה יכול ליצור עוד קובץ לקלאס מסוים ולהוסיף בו עוד מתודות שיהיו חלק מהקלאס
ועל אותו רעיון יש גם Partial Methods שמתודה שנמצאת בקלאס האוטומטי יכולה להמשיך בקלאס השני, במקרה שלך הבעיה היא שאין PARTIAL CONSTRUCTOR (עדיין)
אבל בכ"ז יש פתרון כי ה EF בסוף הקונסטרקטור שלו קורא ל Partial Method בשם OnCreated אז פשוט תייצר partial class לקלאס האוטומטי ושם תשים Partial Method בשם OnCreated ושים שם את הלוגיקה
מקור:
פורסם במקור בפורום CODE613 ב24/03/2015 03:14 (+02:00)
--מעדכן שיחות שבוצעו כאשר העמדה לא הייתה מאויישת, ומשייך את השיחות לאחרון שאייש את העמדה
update c set c.UserID = w.UserID
from @Calls c
CROSS APPLY (SELECT TOP 1 UserID FROM @Working w WHERE w.OfficePosition = c.OfficePosition AND c.StartTime > w.EndTime ORDER BY w.EndTime DESC) AS w
WHERE c.UserID is null;
פורסם במקור בפורום CODE613 ב15/03/2015 14:15 (+02:00)
הוא אומר שככל שהערכים שלך יחודיים כך גוברת יעילות האינדקס אם יש לך רק 1 או 0 בעמודה זה לא יעזור אבל אם כל ערך מהווה 10% מהטבלה זה שווה
מה שהוא עוד אומר זה פשוט לנסות את זה כי לפעמים האופטימייזר מתעלם מהאינדקסים אם הוא חושב שזה לא יעזור
פורסם במקור בפורום CODE613 ב24/02/2015 16:53 (+02:00)
CREATE PROC [dbo].[ExportTable] (@TableName NVARCHAR(MAX) , @FileName NVARCHAR(MAX)) AS
DECLARE @FileContents VARCHAR(MAX)
DECLARE @FieldNames VARCHAR(MAX)
SET @FieldNames =
(SELECT SUBSTRING(( SELECT ',' + '' + name + '' FROM sys.columns WHERE Object_id = Object_ID(@TableName)FOR XML PATH('')),2,200000) AS CSV)
SET @FileContents =
(SELECT SUBSTRING(( SELECT ',' + 'CHAR(34) + CAST([' + name + '] AS NVARCHAR(MAX)) + CHAR(34)' FROM sys.columns WHERE Object_id = Object_ID(@TableName)FOR XML PATH('')),2,200000) AS CSV)
declare @sql varchar(8000)
select @sql = 'bcp "select ''' + @FieldNames + '''" queryout ' + @FileName + '_headers.csv -c -t, -T -S' + @@servername
exec master..xp_cmdshell @sql
select @sql = 'bcp "select ' + @FileContents + ' from ' + DB_NAME() + '..' + @TableName + '" queryout ' + @FileName + '_Lines.csv -c -t, -T -S' + @@servername
exec master..xp_cmdshell @sql
DECLARE @FinalFileName AS NVARCHAR(MAX) = '' + @FileName + '.csv'
SET @sql = 'copy ' + @FileName + '_headers.csv+' + @FileName + '_Lines.csv ' + @FinalFileName
exec master..xp_cmdshell @sql
SET @sql = 'del ' + @FileName + '_headers.csv, ' + @FileName + '_Lines.csv'
exec master..xp_cmdshell @sql
שימוש לדוגמה
[ExportTable] 'Monthly_DailyFlatFile', 'C:\test1'
פורסם במקור בפורום CODE613 ב08/02/2015 15:22 (+02:00)
Parallel.ForEach
פורסם במקור בפורום CODE613 ב08/02/2015 15:18 (+02:00)
תודה!
אגב שורה 31 אם תמיד הערך הוא 9 ה LEN מיותר אפשר לשים ישר 8
פורסם במקור בפורום CODE613 ב08/02/2015 01:09 (+02:00)
א. כן, (בגירסאות קודמות יש משהו שנקרא PINTABLE וזה אומר ל SQL להעלות מראש טבלה מהדיסק לזיכרון, אני לא יודע על זה מספיק)
ב. כן, כמו טבלה רגילה רק אתה חייב ליצור את האינדקסים יחד עם הטבלה אי אפשר ליצור אינדקסים אחר כך, יש מגבלה על 8060 KB ל ROW, וצריך לבצע כמה שינויים ברמת ה DB
ג. אתה יכול להחליט אם אתה רוצה גיבוי לדאטה/לסכמה/בכלל לא בעת יצירת הטבלה, הוא מגבה את זה ברקע בצורה שהיא לא מאוד יעילה מבחינת שטח דיסק (בגלל שהוא מוכוון IN MEMORY אבל נותן יכולת לשחזר אם רוצים.
המידע שהיא מחזירה תמיד מדויק
OTLP כולל יכולת ליצור גם פרוצדורות שיתקמפלו ויעלו לזיכרון כ DLLים על מנת לשפר ביצועים
פורסם במקור בפורום CODE613 ב08/02/2015 12:25 (+02:00)
תמקד יותר את השאלה כי בלינקים שהבאת יש הרבה מאוד חומר . . .
בעיקרון זה אפשרות לטבלאות שיישבו רק בזיכרון ולא בדיסק (אבל יש כן גיבוי לדיסק) וזה נקרא In-Memory Tables
הרעיון שונה מאוד מ SQL רגיל כי הוא משתמש בשיטה שונה לסנכרון בין קריאות לכתיבות ולכן (כמעט) לא מבצע נעילות על ה DATA (במקום להמתין הוא נותן לכל אחד ורסיה אחרת של השורה)
וגם שומר את החומר בזיכרון במבנה יעיל יותר ולא בPages של 8KB (מוכוון קריאה כתיבה לדיסק) זה מייעל גם את האינדקסים והוא גם מעלה לזיכרון DLLים שמכילים את הלוגיקה ומבנה הנתונים על מנת שיהיה אפס I/O בזמן עיבוד השאילתה
בעת גיבוי מסד הנתונים הטבלאות נשמרות בגלל שיש גיבוי לדיסק ולכן גם ישרדו נפילה של השרת או של ה Process
פורסם במקור בפורום CODE613 ב08/02/2015 01:02 (+02:00)
התחלתי לעבוד לאחרונה עם keepass ומאוד חסרה האינטגרציה עם RDP, ואני, מפונק שכמותי, רוצה הכל בקליק אחד.
את הרעיון ראיתי כאן ושיפצתי אותו שיתאים לגירסת ה KEEPASS של היום (ולרמת הפינוק שאני מורגל אליה . . .)
cmd://"cmd.exe" /c cmdkey.exe /generic:TERMSRV/{URL} /user:{USERNAME} /pass:{PASSWORD} & start mstsc.exe /v:{URL} & timeout 2 & cmdkey.exe /delete:TERMSRV/{URL}
לשים את זה ב Properties -> Override URL
Works like a charm!
פורסם במקור בפורום CODE613 ב29/01/2015 12:24 (+02:00)
למעשה אתה צריך מערכת MESSAGING
נסה את RABBIT נורא פשוט ויש קליינטים לכל פלטפורמה
פורסם במקור בפורום CODE613 ב13/01/2015 18:03 (+02:00)
די פשוט. . .
עושים row_number שמים את רשימת השדות ב partition by ועושים where >1
פורסם במקור בפורום CODE613 ב04/01/2015 14:40 (+02:00)
ברגע שזה הפך לשאלה תיאורטית - זה התחום שלי . . .
בהחלט שישנו הגיון בכל זה - אבל הוא די מורכב - אנסה לעשות סדר
ישנן שתיים וחצי בעיות בדרך שבה ניסית לראשונה לפתור את הבעיה:
א. אתה מצפה לבצע מניפולציה על השורה הראשונה בכל מקום עבודה (להפוך את החודש ל 12) אבל את ה CASE שלך אתה שם רק בחלק השני של ה UNION והשורות האלו בכלל נבחרות בחלק הראשון שלו
ב. שכפלת את השדה FROMYEAR לשדה Y על מנת לבצע את המניפולציה על Y ולהשאיר את השדה המקורי לתצוגה ללא מניפולציה בכל השורות, מה שלא עשית בשדה TOMONTH ומכיוון שזו ריקורסיה זה גרם לכך שכשאתה מגיע לשורה האחרונה עבור מקום העבודה הערך בשדה TOMONTH נלקח מהשורה הקודמת שעשתה עליו מניפולציה ל 12 - ז"א התנאי ב CASE עובד אבל הערך שביקשת ממנו להביא הוא כבר לא הערך המקורי
ג. לא אהבתי את התת שאילתה אבל זה כבר עניין של טעם
הפתרון שלי הוא כזה
א. לשים באופן קשיח את החודש 12 ב TOMONTH בחלק הראשון של ה UNION ולשים 1 קשיח ב FROMMONTH בחלק השני של ה UNION
ב. להפריד את FROMMONTH לשדה נוסף שלא יבוצעו עליו מניפולציות לאורך הריקורסיה ואותו לשים בתנאי
ג. לשים Y+1 בכל השוואה ולחסוך את התת שאילתה
מה שאני חייב להודות שהפתרון של CASE בשאילתה הסופית הוא לא רע בכלל, לכן אני אוהב שהעניינים הופכים להיות עקרוניים ואפשר להתפלפל בלי לתת למציאות להפריע :lol:
הדוגמה שלי:
--טבלה שאמורה להכיל את הנתונים ולעבד אותם לפני ההכנסה סופית למסד הנתונים
declare @WorkingPlacesDetailed table (ID int IDentity(1,1) ,FromYear int, FromMonth int, ToYear int,ToMonth int, WorkingPlaceID int,WorkingPlaceName nvarchar(500),DeductionsNumber int,ParentID int);
--ממלא את הטבלה בנתונים לדוגמא
insert into @WorkingPlacesDetailed (FromYear , FromMonth , ToYear , ToMonth ,WorkingPlaceName)
Values(2005,5,2010,9,'פורום חרדי לעניני תיכנות') ,(2010,11,2013,4,'ארגון דעאש');
--מוסיף רשומה לכל שנה בטבלה זו עצמה על סמך ההפרש בין השנים
with cte as
(select ID, FromYear y,FromMonth ,ToYear, ToMonth m, 12 ToMonth, FromYear,WorkingPlaceName from @WorkingPlacesDetailed w where w.FromYear<w.ToYear
union all
select ID,
y+1 y,
1 FromMonth,
ToYear,
m,
(case when y+1 = ToYear then m else 12 end) as ToMonth,
FromYear,WorkingPlaceName
from cte w where w.y+1 <= w.ToYear)
select y as Year,FromMonth , ToMonth , WorkingPlaceName ,ID as ParentID from cte Order by y
פורסם במקור בפורום CODE613 ב16/12/2014 02:00 (+02:00)